package com.ty.mianshiya.annotation;

import jdk.nashorn.internal.ir.annotations.Reference;
import org.w3c.dom.ranges.RangeException;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * 分布式锁注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DistributedLock {
    /**
     * 锁的名称
     */
    String key();

    /**
     * 持续锁的时间，默认30s
     */
    long leaseTime() default 30000;

    /**
     * 等待时间，默认10s
     */
    long waitTime() default 100000;

    /**
     * 时间单位，默认为毫秒
     */
    TimeUnit timeUnit() default TimeUnit.MICROSECONDS;

}
